package com.jt.factory;

import org.springframework.beans.factory.FactoryBean;
import org.springframework.stereotype.Component;

import java.util.Calendar;

/**
 *
 * 在spring容器中的map中 key 为 calendar，value 为 getObject()返回的对象
 *
 *   该功能应用的场景：
 *           1.某些对象不能直接被实例化的情况，如抽象类
 *           2.整合第三方框架对象时，经常用到
 */
@Component("calendar") // 在spring容器中的map中 key 为 calendar
public class CalendarFactory implements FactoryBean<Calendar> {
    @Override
    public Calendar getObject() throws Exception {
        return Calendar.getInstance();
    }

    @Override
    public Class<?> getObjectType() {
        // 固定写法
        return Calendar.class;
    }
}
